package com.sh.data.engine.repository.dao.dataquality;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sh.data.engine.repository.dao.dataquality.entity.DataQualityJobRuleFieldEntity;

/**
 * @author tinglan.ys
 * @description:
 * @date 2022/2/17 下午5:06
 */
public interface DataQualityJobRuleFieldMapper extends BaseMapper<DataQualityJobRuleFieldEntity> {

    /**
     * @description : 统计某个任务下的字段执行记录
     * @author : tinglan.ys
     * @date : 2022/3/31
     */
    //  public List<DataQualityJobRuleFieldCustomDaoDomain> getRuleAlarmInfo(Long jobId) {
    //    /* <select id="getRuleAlarmInfo" resultMap="BaseResultMap2">
    //        SELECT
    //            jrf.*,
    //            j.tbl_id,
    //            t.tbl_name,
    //            jr.rule_id,
    //            r.rule_name
    //        FROM
    //            dataquality_job_rule_field jrf
    //            LEFT JOIN dataquality_job_rule jr ON jrf.dataquality_job_rule_id = jr.id
    //            LEFT JOIN dataquality_job j ON jr.dataquality_job_id = j.id
    //            LEFT JOIN data_standard_tbl t ON j.tbl_id = t.tbl_id
    //            LEFT JOIN dataquality_rule r ON jr.rule_id = r.id
    //        WHERE
    //            j.id = #{jobId}
    //    </select>*/
    //
    //    // nosql数据库写表链接好烦啊 -_-!
    //    // 查询数据质量任务
    //    DataQualityJobEntity dataQualityJobEntity = dataQualityJobMapper.selectById(jobId);
    //    // 查询规则执行记录
    //
    //
    //    List<DataQualityJobRuleEntity> dataQualityJobRuleEntities =
    // dataQualityJobRuleMapper.selectList(new LambdaQueryWrapper<DataQualityJobRuleEntity>()
    //            .eq(DataQualityJobRuleEntity::getDataqualityJobId, jobId));
    //
    //
    //    // 查询每个字段的执行记录
    //    List<Long> allJobRuleIds =
    //        dataQualityJobRuleEntities.stream()
    //            .map(dataQualityJobRuleEntity -> dataQualityJobRuleEntity.getId())
    //            .collect(Collectors.toList());
    //    Query query3 = new Query(Criteria.where("dataQualityJobRuleId").in(allJobRuleIds));
    //    List<DataQualityJobRuleFieldEntity> dataQualityJobRuleFieldEntities =
    // this.findMulti(query3);
    //
    //    List<DataQualityJobRuleFieldCustomDaoDomain> dataQualityJobRuleFieldCustomDaoDomains =
    //        ConvertUtil.copyProperties(
    //            dataQualityJobRuleFieldEntities, DataQualityJobRuleFieldCustomDaoDomain.class);
    //    for (DataQualityJobRuleFieldCustomDaoDomain dataQualityJobRuleFieldCustomDaoDomain :
    //        dataQualityJobRuleFieldCustomDaoDomains) {
    //      // 塞入拼上表名，规则名等信息
    //      dataQualityJobRuleFieldCustomDaoDomain.setTblId(dataQualityJobEntity.getTblId());
    //      dataQualityJobRuleFieldCustomDaoDomain.setTblName(dataQualityJobEntity.getTblName());
    //
    //      // 找到对应的ruleId ruleName
    //      String dataQualityJobRuleId =
    //          dataQualityJobRuleFieldCustomDaoDomain.getDataQualityJobRuleId();
    //      List<DataQualityJobRuleEntity> collect =
    //          dataQualityJobRuleEntities.stream()
    //              .filter(d -> d.getId().equals(dataQualityJobRuleId))
    //              .collect(Collectors.toList());
    //      // 过滤出来的list只有1条
    //      dataQualityJobRuleFieldCustomDaoDomain.setRuleId(collect.get(0).getRuleId());
    //      dataQualityJobRuleFieldCustomDaoDomain.setRuleName(collect.get(0).getRuleName());
    //    }
    //
    //    return dataQualityJobRuleFieldCustomDaoDomains;
    //  }
}
